1,402 research outputs found

    BCFA: Bespoke Control Flow Analysis for CFA at Scale

    Full text link
    Many data-driven software engineering tasks such as discovering programming patterns, mining API specifications, etc., perform source code analysis over control flow graphs (CFGs) at scale. Analyzing millions of CFGs can be expensive and performance of the analysis heavily depends on the underlying CFG traversal strategy. State-of-the-art analysis frameworks use a fixed traversal strategy. We argue that a single traversal strategy does not fit all kinds of analyses and CFGs and propose bespoke control flow analysis (BCFA). Given a control flow analysis (CFA) and a large number of CFGs, BCFA selects the most efficient traversal strategy for each CFG. BCFA extracts a set of properties of the CFA by analyzing the code of the CFA and combines it with properties of the CFG, such as branching factor and cyclicity, for selecting the optimal traversal strategy. We have implemented BCFA in Boa, and evaluated BCFA using a set of representative static analyses that mainly involve traversing CFGs and two large datasets containing 287 thousand and 162 million CFGs. Our results show that BCFA can speedup the large scale analyses by 1%-28%. Further, BCFA has low overheads; less than 0.2%, and low misprediction rate; less than 0.01%.Comment: 12 page

    Technology transfer to the broader economy

    Get PDF
    Approaches to the transfer of government-funded civil space technology to the broader commercial economy were addressed by Working Panel no. 4. Some of the problems related to current strategies for technology transfer and recommendations for new approaches are described in outline form

    Do Family Caps Reduce Out-of-Wedlock Births? Evidence from Arkansas, Georgia, Indiana, New Jersey and Virginia

    Get PDF
    Using Current Population Survey (CPS) data from 1989 to 1999, we examine the impact of family cap policies, which deny incremental welfare benefits, on out-of-wedlock birth rates. We use the first five states that were granted waivers from the Department of Health and Human Services to implement family caps as "natural experiments." Specifically, we compare trends in out-of-wedlock birth rates in Arkansas, Georgia, Indiana, New Jersey and Virginia to trends in states that did not implement family caps or any other waivers prior to the Personal Responsibility and Work Opportunity Reconciliation Act (PRWORA). We employ several techniques to increase the credibility of results from our "natural experiment," such as the inclusion of multiple comparison groups, controls for differential time trends, and "difference-in-difference-indifferences" estimators. Our regression estimates generally do not provide evidence that family cap policies reduce the incidence of out-of-wedlock births among single, less-educated women with children.Welfare, Family Caps, Fertility

    Bringing ultra-large-scale software repository mining to the masses with Boa

    Get PDF
    Mining software repositories provides developers and researchers a chance to learn from previous development activities and apply that knowledge to the future. Ultra-large-scale open source repositories (e.g., SourceForge with 350,000+ projects, GitHub with 250,000+ projects, and Google Code with 250,000+ projects) provide an extremely large corpus to perform such mining tasks on. This large corpus allows researchers the opportunity to test new mining techniques and empirically validate new approaches on real-world data. However, the barrier to entry is often extremely high. Researchers interested in mining must know a large number of techniques, languages, tools, etc, each of which is often complex. Additionally, performing mining at the scale proposed above adds additional complexity and often is difficult to achieve. The Boa language and infrastructure was developed to solve these problems. We provide users a domain-specific language tailored for software repository mining and allow them to submit queries via our web-based interface. These queries are then automatically parallelized and executed on a cluster, analyzing a dataset containing almost 700,000 projects, history information from millions of revisions, millions of Java source files, and billions of AST nodes. The language also provides an easy to comprehend visitor syntax to ease writing source code mining queries. The underlying infrastructure contains several optimizations, including query optimizations to make single queries faster as well as a fusion optimization to group queries from multiple users into a single query. The latter optimization is important as Boa is intended to be a shared, community resource. Finally, we show the potential benefit of Boa to the community by reproducing a previously published case study and performing a new case study on the adoption of Java language features

    Supporting dynamic aspect-oriented features

    Get PDF
    Aspect-oriented programming techniques extend object-oriented programming with new methods to modularize concerns that otherwise would be non-modular. For example, logging concerns are typically scattered across a system but using aspect-oriented techniques they can be localized into a single high-level module. These techniques typically take modular high-level code and statically transform it into non-modular intermediate code. The contribution of this work is the design and implementation of a flexible and dynamic intermediate-language (IL) model. The main motivation for the design of this IL model is to support a variety of dynamic aspect-oriented language constructs that are proposed in recent literature such as CaeserJ\u27s deploy, history-based pointcuts, and control flow constructs. Our IL model provides a higher level of abstraction compared to traditional object-oriented ILs as a compilation target for such constructs, which makes it easier to provide efficient implementations of these constructs. We demonstrate these benefits by providing an industrial strength implementation for our IL model, by showing translation strategies from dynamic source-level constructs to our improved IL, and by analyzing the performance of the resulting IL code. Our evaluation using the SPEC JVM98 and Java Grande benchmarks shows that the overhead of supporting a dynamic deployment model can be reduced to as little as ~1.5%, when compared to the unmodified VM

    The communication of the Christian faith into Japanese culture with special reference to Rogerian counseling

    Get PDF
    https://place.asburyseminary.edu/ecommonsatsdissertations/2325/thumbnail.jp

    The evolution of apomixis in the Asplenium monanthes fern complex

    Get PDF
    Asexually reproducing eukaryotes provide a window into the evolution and maintenance of sexual reproduction, and are challenging our concept of a species. In plants, asexual reproduction (apomixis) is known to cause taxonomic problems and has been indicated to have a disparately high frequency in homosporous ferns. The reasons for such a high frequency of apomictic taxa are unclear, and only add to the enigmatic nature of these ferns. Contemporary studies in ferns are focussing on such questions, and are providing valuable insights into the evolutionary dynamics of apomictic ferns. In this thesis, I investigate the evolution of apomixis in the Asplenium monanthes complex. First, I perform a biosystematic study of the complex, based upon plastid and nuclear DNA sequence data, reproductive mode and polyploidy. I present evidence for reticulate evolution and multiple apomictic lineages. Second, I address the problem of species delimitation in an apomictic species complex. I performed a comparative analysis of AFLP data and sequence data using a variety of species delimitation methods. Results supported the inferences of independent lineages and reticulate evolution made in the previous chapter, but the AFLP data did not support inferences of parentage. Third, I investigated the evolution of genome size in the complex based on DNA C-value data, and tested the utilisation of spore size data to infer ploidy level based on the relationship between genome size and spore size. Genome size variation was shown not only to be due to polyploidy, but also due to expansion of the monoploid genome / chromosome size. Moreover, the evolution of spore size and genome size were not correlated, indicating that spore size is not a good indicator of ploidy level in apomictic complexes. Finally, I investigate the origins of apomixis in A.monanthes based upon AFLP data, sequence data and DNA C-values. I find evidence that the observed genetic and karyological diversity is explained by a single origin of apomixis followed by the spread of apomixis by hybridisation with closely related sexual species by the male function. There is also evidence for post genetic divergence by other mechanisms such as genetic segregation, somatic mutation and unequal meiosis. This thesis presents the first thorough investigation of this complex and has increased our understanding of the evolutionary dynamics of apomixis in ferns

    A decision tree-based approach to dynamic pointcut evaluation

    Get PDF
    Constructs of dynamic nature, e.g., history-based pointcuts and control-flow based pointcuts, have received significant attention in recent aspect-oriented literature. A variety of compelling use cases are presented that motivate the need for efficiently supporting such constructs in language implementations. The key challenge in implementing dynamic constructs is to efficiently support runtime adaptation of the set of intercepted join points at a fine-grained level. This translates to two high-level requirements. First, since the set of intercepted join points may change, such implementations must provide an efficient method to determine this set membership, i.e., whether the currently executing join point needs to be intercepted. Second, the frequency with which such set membership needs to be determined must be minimized. In previous work, Dyer and Rajan proposed a dedicated caching mechanism to address the second requirement. In this work, we propose a mechanism to address the first requirement. This requirement translates to efficiently evaluating whether a join point is intercepted by a set of pointcut expressions. In the worst case, at every join point there may be the need to determine whether it is intercepted. Therefore, even modest savings in such mechanisms is likely to translate to significant savings in the long run
    • …
    corecore